home *** CD-ROM | disk | FTP | other *** search
/ Windows Expert / Windows Expert.iso / windownt / uupc11yt.zip / RNEWS / RNEWS.H < prev    next >
C/C++ Source or Header  |  1992-11-13  |  4KB  |  150 lines

  1. #define TAB_SIZE 8
  2.  
  3. struct art_list {
  4.    struct art_list *next_list;
  5.    int             first_article;
  6.    int             last_article;
  7. };
  8.  
  9. struct newsrc_item {
  10.    struct newsrc_item *next_item;
  11.    struct newsrc_item *previous_item;
  12.    char               *newsrc_grp_name;
  13.    int               newsrc_subscribed;
  14.    struct art_list   *read_list;
  15. };
  16.  
  17.  
  18. struct subj_line {
  19.    struct subj_line *subj_next;
  20.    int art_no;
  21.    char *subject;
  22. };
  23.  
  24.  
  25. extern struct newsrc_item *newsrc_list;
  26. extern struct newsrc_item *newsrc_last;
  27. extern struct art_list *free_arts;
  28.  
  29. extern struct subj_line *subjects;
  30.  
  31. extern int last_subj_art;
  32.  
  33. extern int cmd;                     /* The current command character */
  34.  
  35. extern char art_format[FILENAME_MAX];
  36.  
  37. extern struct newsrc_item *active_group;  /* The "current" newsgroup being read */
  38. extern struct newsrc_item *previous_group; /* The last active_group */
  39.  
  40. extern int cmd;                     /* The current command character */
  41.  
  42. extern char *cwd;                /* The initial drive:directory */
  43. extern FILE *this_article;
  44. extern FILE *last_article;
  45.  
  46. /* rn options */
  47. extern int erase_for_more;          /* -e sets TRUE      */
  48. extern int supress_initial;         /* -s[count] sets it to count (0 if absent) */
  49. extern int dont_flush;              /* -T ses TRUE    */
  50.  
  51.  
  52.  
  53. /* rn strings
  54.  
  55.    The following strings are implemented (at least partially)
  56.  
  57.       %a Current article number
  58.       %B Byte offset in file of start of file save
  59.             (0 for save; start of body for write)
  60.       %c Current newsgroup, directory form
  61.       %C Current newsgroup, dot form
  62.       %f "From:" line ("Reply-To:" if it exists)
  63.       %F "Newsgroups:" for new article constructed from
  64.             "Newsgroups:" ("Followup-To:") of current
  65.             article
  66.       %H Host name
  67.       %i "Message-I.D.:"
  68.       %L Your Login name
  69.       %O Original working directory
  70.       %p Your private news directory, ~/News
  71.       %P Public news directory
  72.       %s Subject with all "Re:"s and ???
  73.       %S Subject with one "Re:" stripped off
  74.       %T "To:" line for reply.  Constructed from the "Path:"
  75.       %t "To:" line for reply.  Constructed from "From:"
  76.             ("Reply-To:") line
  77.       %u Number of unread articles in the current newsgroup
  78.       %z Length of current article in bytes
  79.       %~ Your home directory
  80.  
  81.    The following strings are NOT implemented at this time
  82.  
  83.       %A Full name of current article (%P/%c/%a)
  84.       %b Destination of last save
  85.       %d Full name of newsgroup directory (%P/%c
  86.       %D "Distribution:" line from current article
  87.       %h Nmae of header file to pass to mail or news poster
  88.       %I reference indication mark
  89.       %l administrator's login
  90.       %m current mode
  91.       %M number of articles Marked
  92.       %n
  93.       %o
  94.       %r
  95.       %R
  96.       %U Number unread articles not counting this one
  97.       %x
  98.       %.
  99.       %$
  100.       %/
  101.       %(name)
  102.       %[name]
  103.       %`command`
  104.       %"prompt"
  105.       %(test=pattern?then:else)
  106.       %digit
  107.  
  108. */
  109.  
  110. /* The following "strings" are stored as numbers
  111.  
  112.       %a    int      current_article
  113.       %B    long  last_start_of_save
  114.       %u    int      current_unread
  115.       %z    long  current_article_length
  116.  
  117. */
  118.  
  119. extern int  current_article;
  120. extern long last_start_of_save;
  121. extern long current_start_of_body;
  122. extern int  current_unread;
  123. extern long current_article_length;
  124.  
  125. extern char *current_to;
  126. extern char *current_path_to;
  127. extern char *message_ID;
  128. extern char *current_subject;
  129. extern char *current_refs;
  130. extern char *current_newsgroups;
  131. extern char *current_followup;
  132. extern char *current_reply_to;
  133. extern char *current_distribution;
  134.  
  135.  
  136. extern void check_alloc(void *ptr);
  137. char *expand(char *rn_string, int *cnt);
  138. void reply(FILE *f, int cmd);
  139. void clear_screen(void);
  140. void save_article(FILE *f, int cmd);
  141. void update_list(int article);
  142. void unmark_article(int article);
  143. struct subj_line *get_subj_line(int art_no);
  144. void catch_up_subj(int article);
  145. char *subj_str(int art_no) ;
  146. char *get_subject_line(FILE *f);
  147. void flush_kybd(void);
  148. int is_read (int article);
  149. int do_article(FILE *art, int decrypt, int art_no, int verbose);
  150.